export default function createDOMElement(vnode) {
  let elm = null

  if (vnode.tag === undefined) {
    // 如果是文本节点，那么需要调用document.createTextNode
    elm = document.createTextNode(vnode.text)
  } else {
    elm = document.createElement(vnode.tag)
  }

  vnode.elm = elm

  if (vnode.data && vnode.data.attrs) {
    for (let [k, v] of Object.entries(vnode.data.attrs)) {
      vnode.elm.setAttribute(k, v)
    }
  }

  if (vnode.children) {
    // vnode.children.forEach((v) => {
    //   // 循环子节点，创建出真实的DOM节点
    //   const elm = createDOMElement(v)
    //   // 追加到真实的父DOM节点的子节点中
    //   vnode.elm.append(elm)
    // })

    // append可以一次性追加多个子节点，append(a, b, c, d, e, f, g)
    vnode.elm.append(...vnode.children.map((v) => createDOMElement(v)))
  }

  return elm
}
